#!/bin/bash

echo "🔍 用户名长度验证问题调试指南"
echo "=================================="
echo ""

echo "📋 已修复的文件："
echo "✅ client/src/pages/auth/LoginPage.tsx - 用户名最小长度改为1"
echo "✅ client/src/pages/auth/RegisterPage.tsx - 用户名最小长度改为1"
echo "✅ server/src/routes/auth.ts - 后端验证改为1-20字符"
echo "✅ server/src/utils/helpers.ts - 正则表达式改为1-20字符"
echo "✅ server/src/middleware/validation.ts - 中间件验证改为1-30字符"
echo ""

echo "🔄 已执行的操作："
echo "✅ 重新构建前端 (npm run build)"
echo "✅ 重新构建后端 (npm run build)"
echo "✅ 重启服务器"
echo "✅ 更新 HTML 版本号"
echo ""

echo "🚨 如果还是提示'用户名需要3个字符'，请按以下步骤操作："
echo ""
echo "1️⃣ 强制清除浏览器缓存："
echo "   - Windows: Ctrl+Shift+R 或 Ctrl+F5"
echo "   - Mac: Cmd+Shift+R 或 Cmd+F5"
echo "   - 或者 F12 → 右键刷新按钮 → '清空缓存并硬性重新加载'"
echo ""

echo "2️⃣ 检查开发者工具："
echo "   - 按 F12 打开开发者工具"
echo "   - 查看 Console 标签页是否有错误"
echo "   - 查看 Network 标签页，确认加载的是最新的 JS 文件"
echo "   - 文件名应该包含新的哈希值"
echo ""

echo "3️⃣ 检查加载的 JavaScript 文件："
echo "   - 在 Network 标签页中找到 index-*.js 文件"
echo "   - 点击查看文件内容"
echo "   - 搜索 'min(3' 或 '3位字符'"
echo "   - 如果找到，说明还在使用旧文件"
echo ""

echo "4️⃣ 如果问题仍然存在："
echo "   - 尝试使用无痕/隐私模式打开页面"
echo "   - 或者使用不同的浏览器"
echo "   - 或者清除浏览器所有缓存和 Cookie"
echo ""

echo "5️⃣ 验证修复是否生效："
echo "   - 尝试输入单字符用户名（如 'a'）"
echo "   - 应该不再显示'用户名至少3位字符'错误"
echo "   - 应该只显示'用户名不能为空'（如果为空）"
echo ""

echo "📊 当前服务器状态："
if curl -s http://localhost:3001/health > /dev/null; then
    echo "✅ 服务器运行正常"
else
    echo "❌ 服务器未运行，请先启动服务器"
fi

echo ""
echo "🔧 如果问题持续存在，可能需要："
echo "1. 检查是否有其他地方的验证规则"
echo "2. 确认浏览器没有使用 Service Worker"
echo "3. 检查是否有 CDN 或代理缓存"
echo ""
echo "💡 提示：修改验证规则后，前端需要重新构建才能生效！"
